例4
例4 嗅探器
嗅探器
给出一无向图连通图,以及图上的两点 和 ,求删掉哪个点以后,可使得 、 分别位于不同的连通块?
所求点 为割点,且删掉 之后,、 分别位于不同的连通块。
因此,我们从点 开始执行 tarjan 求割点算法,如果找到的割点位于 到 的路径中,那么该割点便满足条件。
如何保证割点 位于 、 之间的路径呢?假设我们是通过 的儿子节点为 判定 为割点,那么,若满足条件
便意味着 位于 、 之间。这是因为 的值不是 ,说明已经搜过点 ,其值大于等于 ,说明先访问的 ,再访问的 。所以 一定位于子树 。